//
//  BLECenter+BLEAdd.h
//  BLESDKDemo
//
//  Created by 李阳 on 2018/4/6.
//  Copyright © 2018年 李阳. All rights reserved.
//

#import "BLEConstant.h"

/// 蓝牙错误类型
typedef NS_ENUM(NSUInteger, BLEErrorCode) {
    BLECodeCenterDisable, ///< 蓝牙中心不可用  蓝牙未打开
    BLECodeDeviceNotFound, ///< 没有发现设备
    BLECodeDeviceDisconnect, ///< 设备未连接
    BLECodeDataSendFailed, ///< 发送失败
    BLECodeDataResponseFailed, ///< 响应失败
    BLECodeDataReciveFailed, ///< 接收失败
    BLECodeCanceldManual, ///< 手动取消
    
    BLECodeDeviceNotReachable, ///< 设备特征服务还未准备好
    
    BLECodeTimeout, ///< 超时
    BLECodeBusy, ///< 忙碌
    
    BLEDeviceParamInvalid, ///< 设备名称无效
    BLEFailed ///< 失败
};

@interface NSError (BLEAdd)

+ (NSError *)errorWithCode:(NSInteger)code message:(NSString *)msg;
- (NSString *)msg;

/// 蓝牙忙碌
+ (NSError *)bleBusyError;

/// 蓝牙超时
+ (NSError *)bleTimeoutError;

/// 蓝牙中心不可用
+ (NSError *)bleCenterDisableError;

/// 设备断开连接
+ (NSError *)bleDeviceDisconnectError;

+ (NSError *)bleDeviceNotReadyError;

+ (NSError *)bleDeviceNotFound;

/// 数据发送错误
+ (NSError *)bleDataSendError;

/// 数据响应错误
+ (NSError *)bleDataResponseError;

/// 数据接收错误
+ (NSError *)bleDataReceiveError;

/// 手动取消错误
+ (NSError *)bleCancelManuallyError;

/// 蓝牙操作失败
+ (NSError *)bleFailed;

@end
